home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 June / CHIP Haziran 2001.iso / prog / haziran / 19 / setup.exe / data.z / windrvr_net.h < prev    next >
C/C++ Source or Header  |  2001-04-11  |  2KB  |  117 lines

  1. #if !defined(_WINDRVR_NET_H_)
  2. #define _WINDRVR_NET_H_
  3.  
  4. #if defined(_WINDRVR_H_)
  5.     #error "you must include windrvr_net.h before windrvr.h"
  6. #endif
  7.  
  8. #if defined(__cplusplus)
  9.     extern "C" {
  10. #endif
  11.  
  12. #include "windrvr.h"
  13.  
  14. typedef void (*WD_CLOSE_FUNC) (HANDLE);
  15. typedef unsigned long (*WD_FUNCTION_FUNC) (DWORD, HANDLE, PVOID, DWORD, BOOL);
  16.  
  17. typedef struct
  18. {
  19.     HANDLE mutex;
  20.     char ip[128];
  21.     DWORD port;
  22. } net_params_t;
  23.  
  24. typedef struct
  25. {
  26.     WD_CLOSE_FUNC wd_close_func;
  27.     WD_FUNCTION_FUNC wd_function_func;
  28.     HANDLE h;
  29.     net_params_t *net_pr;
  30.     BOOL is_wince;
  31.     BOOL is_remote;
  32. } *WD_HANDLE;
  33.  
  34. typedef struct
  35. {
  36.     DWORD dwPort;
  37.     char pcIP[128];
  38.     BOOL fWinCE;
  39. } WD_OPENNET;
  40.  
  41. typedef struct
  42. {                                                        
  43.     DWORD dwVer;
  44.     CHAR cVer[100];
  45.     CHAR cOs[100];
  46. } WD_VERSION_NET;
  47.  
  48. static void WD_CloseLocal_Call(HANDLE h)
  49. {
  50.     WD_CloseLocal(h);
  51. }
  52.  
  53. static ULONG WD_FUNCTION_LOCAL_CALL(DWORD wFuncNum, HANDLE h,
  54.     PVOID pParam, DWORD dwSize, BOOL fWait)
  55. {
  56.     return WD_FUNCTION_LOCAL(wFuncNum, h, pParam, dwSize, fWait);
  57. }
  58.  
  59. static HANDLE WD_Open()
  60. {
  61.     WD_HANDLE hWD;
  62.     hWD = (WD_HANDLE)malloc(sizeof(*hWD));
  63.  
  64.     BZERO(*hWD);
  65.  
  66.     hWD->h = WD_OpenLocal();
  67.     if (hWD->h==INVALID_HANDLE_VALUE)
  68.     {    
  69.         free(hWD);
  70.         return INVALID_HANDLE_VALUE;
  71.     }
  72.     hWD->wd_close_func = WD_CloseLocal_Call;
  73.     hWD->wd_function_func = WD_FUNCTION_LOCAL_CALL;
  74.     return (HANDLE) hWD;
  75. }
  76.  
  77. HANDLE WD_OpenNet(WD_OPENNET *pOpenNet);
  78.  
  79. #define NET_REQUEST_WD_VERSION 1
  80. ULONG WD_VersionNet(HANDLE h, PVOID pBuf);
  81.  
  82. static void WD_Close(HANDLE h)
  83. {
  84.     WD_HANDLE hWD = (WD_HANDLE)h;
  85.     HANDLE hWD1;
  86.     WD_CLOSE_FUNC c_f = hWD->wd_close_func;
  87.     if (!hWD->is_remote)
  88.     {
  89.         hWD1 = hWD->h;
  90.         free (hWD);
  91.     }
  92.     else
  93.         hWD1 = (HANDLE)hWD;
  94.  
  95.     c_f(hWD1);
  96. }
  97.  
  98. static ULONG WD_FUNCTION(DWORD wFuncNum, HANDLE h,
  99.     PVOID pParam, DWORD dwSize, BOOL fWait)
  100. {
  101.     WD_HANDLE hWD = (WD_HANDLE) h;
  102.     HANDLE hWD1;
  103.     if (!hWD->is_remote)
  104.         hWD1 = hWD->h;
  105.     else
  106.         hWD1 = (HANDLE)hWD;
  107.     
  108.     return hWD->wd_function_func(wFuncNum, hWD1, pParam, dwSize, fWait);
  109. }
  110.  
  111. #ifdef __cplusplus
  112. }
  113. #endif
  114.  
  115.     
  116. #endif
  117.